﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using VuelosServiceWCF.ProveedorVueloService;
using VuelosServiceWCF.Entidades;

namespace VuelosServiceWCF
{
    // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de clase "VueloService" en el código, en svc y en el archivo de configuración a la vez.
    // NOTA: para iniciar el Cliente de prueba WCF para probar este servicio, seleccione VueloService.svc o VueloService.svc.cs en el Explorador de soluciones e inicie la depuración.
    public class VueloService : IVueloService
    {
        public List<ProveedorVueloService.Vuelo> Obtiene_Disponiblidad(string pStroOrigen, string pStrDestino,
            DateTime pDatFechaSalida, DateTime? pDatFechaRetorno, int pIntAdultos, int pIntNinos,
            int pIntInfantes, string pStrTipoVuelo)
        {
            ProveedorVuelosServiceClient objProveedorVuelosServiceClient = new ProveedorVuelosServiceClient();

            List<ProveedorVueloService.Vuelo> lstDisponibilidadVuelos =
                new List<ProveedorVueloService.Vuelo>(objProveedorVuelosServiceClient.Obtener_Vuelos(pStroOrigen, pStrDestino, pDatFechaSalida,
                    pDatFechaRetorno, pIntAdultos, pIntNinos, pIntInfantes, pStrTipoVuelo));

            if (lstDisponibilidadVuelos.Count == 0)
            {
                throw new FaultException<ValidationException>(new ValidationException
                {
                    ValidationError = "Vuelos no existentes"
                }, new FaultReason("Validation Failed"));
            }
            else
            {
                return lstDisponibilidadVuelos;
            }
        }
    }
}
